package com.xiu.travel.security.pojo.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

import java.io.Serial;
import java.io.Serializable;
import java.util.List;

@Data
@AllArgsConstructor
@NoArgsConstructor
@Accessors(chain = true)
@Schema(name = "WXUserInfoVO对象", description = "微信用户信息类")
public class WXUserInfoVO implements Serializable {
    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 普通用户的标识，对当前开发者帐号唯一
     */
    @Schema(name = "openid", description = "普通用户的标识")
    private String openid;

    /**
     * 普通用户昵称
     */
    @Schema(name = "nickname", description = "微信昵称")
    private String nickname;

    /**
     * 普通用户性别，1为男性，2为女性
     */
    @Schema(name = "sex", description = "性别")
    private int sex;

    /**
     * 普通用户性别，1为男性，2为女性
     */
    @Schema(name = "province", description = "省")
    private String province;

    /**
     * 普通用户性别，1为男性，2为女性
     */
    @Schema(name = "city", description = "市")
    private String city;

    /**
     * 国家，如中国为CN
     */
    @Schema(name = "country", description = "国家")
    private String country;

    /**
     * 用户头像，最后一个数值代表正方形头像大小
     * （有0、46、64、96、132数值可选，0代表640*640正方形头像），用户没有头像时该项为空
     */
    @Schema(name = "headimgurl", description = "用户头像")
    private String headimgurl;

    /**
     * 用户统一标识。针对一个微信开放平台帐号下的应用，
     * 同一用户的unionid是唯一的。
     */
    @Schema(name = "unionid", description = "用户统一标识")
    private String unionid;

    /**
     * 用户特权信息，json数组，如微信沃卡用户为（chinaunicom）
     */
    @Schema(name = "privilege", description = "用户特权信息")
    private List<String> privilege;
}
